# 实现一个人生模拟器：
# 1、游戏开始的时候，设置初始属性：颜值、体质、智力、家境
# 2、开始游戏，随机生成性别和出生点
# 3、针对每一年，都生成人生的经历  (依靠 随机因素  和  人物的当前属性)
import random
import sys
import time

print('+------------------------+')
print('|                        |')
print('|  花有重开日，人无再少年    |')
print('|                        |')
print('|  欢迎来到人生重开模拟器    |')
print('|                        |')
print('+------------------------+')

# 设置初始属性：颜值、体质、智力、家境，
# 四项属性的点数不能超过20，每一项的取值都在1到10之间

print('请设置初始属性(可用点数是20)\n')

# 使用循环，使玩家在输入错误的时候，可以重新输入
while True:
    face = int(input('请输入颜值(1-10):'))
    while face < 1 or face > 10:
        print('\n颜值输入有误！')
        face = int(input('请重新输入颜值(1-10):'))

    strong = int(input('请输入体质(1-10):'))
    while strong < 1 or strong > 10:
        print('\n体质输入有误！')
        strong = int(input('请重新体质(1-10):'))

    iq = int(input('请输入智商(1-10):'))
    while iq < 1 or iq > 10:
        print('\n智商输入有误！')
        iq = int(input('请重新输入智商(1-10):'))

    home = int(input('请输入家境(1-10):'))
    while home < 1 or home > 10:
        print('\n家境输入有误！')
        home = int(input('请重新输入家境(1-10):'))

    if (face + strong + iq + home) <= 20:
        print('\n初始属性输入完毕！')
        print(f'颜值 = {face}, 体质 = {strong}, 智商 = {iq}, 家境 = {home}')
        break
    else:
        print('\n现在的四项输入加起来已经超过20，请重新输入！')

# 随机生成性别
# 使用random.randint(beg, end), 就能生成一个随机整数，该整数属于[beg, end]
# random是python中的一个模块，randint是random中的一个函数
# 只要在下面写出random，在函数的最开始会自动生成 import random 这一行

point = random.randint(1, 1000)
print(f'point = {point}')
if point % 2 == 1:
    gender = 'boy'
    print('\n你出生了，你是个男孩')
else:
    gender = 'girl'
    print('\n你出生了，你是个女孩')

# 设置角色的出生点，按照家境和随机数决定
point = random.randint(1, 3)
if home == 10:
    print('开局就是巅峰')
    home += 1
    iq +=1
    face += 1
elif 7 <= home <= 9:
    if point == 1:
        print('你出生在大城市，你的父母是公务员')
        face += 2
    elif point == 2:
        print('你出生在大城市，你的父母是企业高管')
        home += 2
    else:
        print('你出生在大城市，你的父母是大学教授')
        iq += 2
elif 4 <= home <= 6:
    if point == 1:
        print('你出生在三线城市，你的父母是医生')
        strong += 1
    elif point == 2:
        print('你出生在三线城市，你的父母是教师')
        iq += 1
    else:
        print('你出生在三线城市，你的父母是个体户')
        home += 1
else:
    if point == 1:
        print('你出生在农村，你的父母是农民')
        strong += 1
        face -= 2
    elif point == 2:
        print('你出生在穷乡僻壤，你的父母是无业游民')
        home -= 1
    else:
        print('你出生在镇上，你的父母感情不和')
        strong -= 1
print(f'颜值 = {face}, 体质 = {strong}, 智商 = {iq}, 家境 = {home}')

# 幼年阶段：
for age in range(1, 11):
    info = f'你今年{age}岁，'
    point = random.randint(1, 3)
    if gender == 'girl' and home <= 3 and point == 1:
        info += '家里人重男轻女，你被遗弃了！'
        print(info)
        print("游戏结束！")
        sys.exit(0)

    elif strong < 6 and point < 3:
        info += '你生了一场病，'
        if home >= 5:
            info += "在父母的照料下，你好了，"
            strong += 1
            home -= 1
        else:
            info += '父母没时间管，你的身体状况更差了，'
            strong -= 1

    elif face <= 4 and age >= 7:
        info += '长得太丑，别的小朋友不喜欢你，'
        if iq > 5:
            info += '你用学习填充自己'
            iq += 1
        else:
            if gender == "boy":
                info += "你和别的小朋友经常打架"
                strong += 1
                iq -= 1
            else:
                info += "你经常被别人欺负"
                strong -= 1

    elif iq < 5:
        info += "你看起来傻傻的，"
        if home >= 8 and age >= 6:
            info += '你的父母把你送到好学校，'
            iq += 1
        elif 4 <= home <= 7:
            if gender == "boy":
                info += "你的父母鼓励你成为运动员"
                strong += 1
            else:
                info += '你的父母鼓励你多打扮'
                face += 1

        else:
            info += '你的父母经常为你的智商捉急'
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
            else:
                pass

    else:
        info += '你健康成长'
        if point == 1:
            info += "你看起来更结实了"
            strong += 1
        elif point == 2:
            info += "你看起来更好看了！"
            face += 1
        else:
            pass

    #打印这一年发生的事情
    print(info)

    print(f'颜值 = {face}, 体质 = {strong}, 智商 = {iq}, 家境 = {home}')

    print('-------------------------')

    #time 是 python提供的模块
    time.sleep(1)
